Computer networks allow resources to be shared among different computers. For example, the Internet allows computers around the world to exchange information such as electronic mail. The world wide web provides for the exchange of audio-visual information between computers connected to the Internet. Furthermore, centralized computer servers may store information posted by one computer user for access by others.
Server computers allow computer users to access information stored within various sub-locations of a network location such as an Internet domain. Sub-locations of a network location may include individual directories of one or more servers or individual servers of a server farm. A particular sub-location may be allocated to a particular computer user or group of users who post information to the sub-location for access by other computer users also connected to the network location. Although such information sharing through the network is beneficial to computer users, care must be exercised in the administration of the network to prevent unauthorized access to the various network locations and sub-locations of the network locations.
To prevent unauthorized access, the user is authenticated for the network location. Authentication of a user can be performed in various ways. One method is to require the user to enter a user name and password before access to the network location and corresponding sub-locations is permitted. However, as the number of network locations a user may wish to access increases, requiring the user to enter a user name and password for every location becomes cumbersome.
To address this issue, a cookie is issued to the user upon the user entering a user name and password once so that the cookie can be used to authenticate the identity of the user at the network location, such as a domain within the world wide web, for all of the sub-locations within the network location. The cookie is a data file that serves to identify the user by including one or more lengthy numbers that are an identification of the user and that typically expires at a certain future time. The initial login with a user name and password is typically done through a trusted central network location maintaining the reference username and password, such as .NET™ Passport™ for example. When the user attempts to visit a network location, the user's computer is directed to the trusted network location which issues an encrypted cookie to the user's computer for the network location. Then, the user's computer is directed back to the server of the network location, and this server then check the cookie that has just been issued to the user's computer.
The server requests the cookie from the user's computer and then attempts to validate the cookie by decrypting the cookie with a secret key and determining that the decrypted cookie has not expired. Upon the server of the visited network location successfully validating the cookie, the visited network location has authenticated the user attempting access because the validated cookie confirms that the user attempting to access the network location is a user of a known and trusted identity. The identity may be specified by information contained within the decrypted cookie.
For sub-locations of network locations where users can post information, a security risk still exists where cookies are being used to authenticate the user for the visited network location. A user having access to a sub-location within the visited network location may post scripting information for various reasons such as to provide audio-visual information to others accessing the sub-location. However, a malicious user may post scripts that perform malicious activities such as stealing cookies that are uploaded from other users' computers when they are visiting the network location.
Upon obtaining the cookies of the other users visiting the network location, the malicious user who stole these cookies can then impersonate these other users to gain access to sub-locations within the network location for which the impersonated user has access. Thus, the malicious user who stole the cookies can now be given access to sub-locations and activities that this malicious user might not otherwise be able to access, such as activities and/or sub-locations that involve personal, financial, or other sensitive information about the users being impersonated.